A programmable execution service (“PES”) can provide computing resources for executing applications on a permanent or an as-needed basis. The computing resources provided by a PES may include various types of resources, such as data processing resources, data storage resources, data communication resources, and the like. Each type of computing resource may be general-purpose or may be available in a number of specific configurations. For example, data processing resources may be available as virtual machine instances. The instances may be configured to execute applications, including World Wide Web (“Web”) servers, application servers, media servers, database servers, and the like. The resources provided by a PES can typically be purchased and utilized according to various financial models.
Applications executing on a PES (“PES applications”) can be highly complex. For instance, it is not uncommon for such applications to be configured to execute many hundreds of different types of services on a thousand or more instances. It is also not uncommon for PES applications to utilize software components that are developed internally by the owner or maintainer of the PES application, software components developed by the open source community, and/or software components licensed from a third-party provider. As a result, many different software developers and/or software development teams might concurrently maintain and develop updates to the various components that make up a PES application. Updates to a PES application might implement security patches, bug fixes, feature improvements, or make other changes. Updates might install new software components, patch existing software components, remove software components from a PES application, and/or perform other tasks.
As a result of the complexity of many PES applications and the fact that updates to components utilized by PES applications might be issued by many different developers, it can be difficult for the owner or maintainer of a PES application to determine the applicability and compatibility of the various updates. Consequently, it may be hard for the owner or maintainer of the PES application to determine which updates to deploy to a PES application. This is especially true for high-availability PES applications for which downtime is unacceptable. The possibility of downtime caused by the deployment of an incompatible update typically outweighs the possible benefits that might result from the deployment of an update to the PES application. As a result, updates to PES applications may be declined or postponed out of fear that the deployment of the updates might negatively affect the performance of the PES application.
It is with respect to these and other considerations that the disclosure made herein is presented.